package SecondeStage.IO.In_OutputStream;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;

public class FileInputStream_ {
    public static void main(String[] args) throws IOException {
        FileInputStream_ fileInputStream = new FileInputStream_();
        fileInputStream.readFile01();
    }

    public void readFile01() throws IOException {
        String filePath ="D:\\Java\\JavaProject\\hello.txt";
        int readData =0;
        // 字节数组
        byte[] buf = new byte[8]; // 一次读取8个字节
        int readLen =0;
        FileInputStream fileInputStream = new FileInputStream(filePath);
        try {
            // 从该输入流读取一个字节的数据，如果没有输入可用，此方法将阻止。
            // 如果返回-1，表示读取完毕
//            while ((readData = fileInputStream.read())!= -1){
//                System.out.print((char) readData+" ");
//            }

            // 从该输入流读取最多b.length字节的数据到字节数组，如果没有输入可用，此方法将阻止。
            // 如果返回-1，表示读取完毕。如果读取正常，返回实际读取的字节数
            while ((readLen=fileInputStream.read(buf))!= -1){
                System.out.println("\nreadLen="+readLen);
                System.out.print(new String(buf,0,readLen));
            }

        } catch (FileNotFoundException e) {
            throw new RuntimeException(e);
        } catch (IOException e) {
            throw new RuntimeException(e);
        }finally {
            // 关闭流，防止资源浪费
            fileInputStream.close();
        }
    }
}
